import express from "express";
import DB from "./database";
const app = express();
const port = 3000;
const db = DB;
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
// 导入cors类型定义
import cors from "cors";
// import morgan from "morgan";
// const logger = morgan("tiny");
app.use(cors());
// app.use(logger);
app.get("/", (req: any, res: any) => {
	res.send("Hello, TypeScript with Express!222");
});
app.get("/user3", async (req: any, res: any) => {
	try {
		// 向user表中插入数据
		console.log(db.Users);
		// 修改查询方式，禁用paranoid模式或明确指定查询参数
		const result = await db.Users.findAll({
			// 查询所有数据，包括软删除的数据
			paranoid: false,
			// 按照创建时间降序排序
			order: [['createdAt', 'DESC']]
		});
		console.log(result);
		res.send(result);
		// res.send(result);
	} catch (error) {
		console.error("查询用户数据出错:", error);
		res.status(500).send({
			message: "查询用户数据失败",
			error: (error as Error).message,
		});
	}
});
// 添加 express.json() 中间件来解析 JSON 格式的请求体
// 添加 express.urlencoded() 中间件来解析 URL 编码的请求体

app.post("/user2", async (req: any, res: any) => {
	try {
		// 向user表中插入数据
		// console.log(db.Users);
		// 获取 GET 请求参数
		console.log('GET 参数:', req.query);
		// 获取 POST 请求体
		console.log('POST 请求体:', req.body);
		// 获取路由参数
		console.log('路由参数:', req.params);
		// 获取请求头
		console.log('请求头:', req.headers);
		// 修改查询方式，禁用paranoid模式或明确指定查询参数
		// const result = await db.Users.create({
		// 	username: "王五",
		// 	password: "新数据",
		// 	ruleId: 2,
		// 	// 只在创建时设置一次创建日期
		// 	createdAt: new Date(),
		// 	updatedAt: new Date(),
		// });
		const result = {}
		console.log(result);
		res.send(result);
	} catch (error) {
		console.error("查询用户数据出错:", error);
		res.status(500).send({
			message: "查询用户数据失败",
			error: (error as Error).message,
		});
	}
});
app.get("/user/delete", async (req: any, res: express.Response) => {
    try {
        let result = await db.Users.destroy({
			where: {
				username: "王五"
		}});
        console.log('删除操作结果:', result);
        res.send(result);
    } catch (error) {
        res.send(error)
    }
});
app.listen(port, () => {
	console.log(`Server is running at http://localhost:${port}`);
});
